(0) Obligation:

Clauses:

append2(parts([], Y), is(sum(Y))).
append2(parts(.(H, X), Y), is(sum(.(H, Z)))) :- append2(parts(X, Y), is(sum(Z))).
append1(parts([], Y), is(sum(Y))).
append1(parts(.(H, X), Y), is(sum(.(H, Z)))) :- append1(parts(X, Y), is(sum(Z))).
perm([], []).
perm(L, .(H, T)) :- ','(append2(parts(V, .(H, U)), is(sum(L))), ','(append1(parts(V, U), is(sum(W))), perm(W, T))).

Query: perm(g,a)

(1) PrologToPrologProblemTransformerProof (SOUND transformation)

Built Prolog problem from termination graph ICLP10.

(2) Obligation:

Clauses:

append2A([], T68, T69, .(T68, T69)).
append2A(.(T77, X107), T79, X108, .(T77, T78)) :- append2A(X107, T79, X108, T78).
append1B([], T102, T102).
append1B(.(T109, T110), T111, .(T109, X156)) :- append1B(T110, T111, X156).
append1C(T37, T37).
append1D(T93, T94, T95, .(T93, X134)) :- append1B(T94, T95, X134).
permE([], []).
permE(.(T27, T28), .(T27, T29)) :- append1C(T28, X27).
permE(.(T27, T28), .(T27, T29)) :- ','(append1C(T28, T31), permE(T31, T29)).
permE(.(T45, T46), .(T47, T48)) :- append2A(X68, T47, X69, T46).
permE(.(T45, T46), .(T47, T55)) :- ','(append2A(T53, T47, T54, T46), append1D(T45, T53, T54, X27)).
permE(.(T45, T46), .(T47, T55)) :- ','(append2A(T53, T47, T54, T46), ','(append1D(T45, T53, T54, T84), permE(T84, T55))).

Query: permE(g,a)

(3) PrologToPiTRSProof (SOUND transformation)

We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:
permE_in: (b,f)
append2A_in: (f,f,f,b)
append1D_in: (b,b,b,f)
append1B_in: (b,b,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, append1C_in_ga(T28, X27))
append1C_in_ga(T37, T37) → append1C_out_ga(T37, T37)
U4_ga(T27, T28, T29, append1C_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, append1C_in_ga(T28, T31))
U5_ga(T27, T28, T29, append1C_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, append2A_in_aaag(X68, T47, X69, T46))
append2A_in_aaag([], T68, T69, .(T68, T69)) → append2A_out_aaag([], T68, T69, .(T68, T69))
append2A_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, append2A_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, append2A_out_aaag(X107, T79, X108, T78)) → append2A_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, append2A_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, append2A_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, X27))
append1D_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, append1B_in_gga(T94, T95, X134))
append1B_in_gga([], T102, T102) → append1B_out_gga([], T102, T102)
append1B_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, append1B_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, append1B_out_gga(T110, T111, X156)) → append1B_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, append1B_out_gga(T94, T95, X134)) → append1D_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
append2A_in_aaag(x1, x2, x3, x4)  =  append2A_in_aaag(x4)
append2A_out_aaag(x1, x2, x3, x4)  =  append2A_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
append1D_in_ggga(x1, x2, x3, x4)  =  append1D_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
append1B_in_gga(x1, x2, x3)  =  append1B_in_gga(x1, x2)
append1B_out_gga(x1, x2, x3)  =  append1B_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
append1D_out_ggga(x1, x2, x3, x4)  =  append1D_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(4) Obligation:

Pi-finite rewrite system:
The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, append1C_in_ga(T28, X27))
append1C_in_ga(T37, T37) → append1C_out_ga(T37, T37)
U4_ga(T27, T28, T29, append1C_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, append1C_in_ga(T28, T31))
U5_ga(T27, T28, T29, append1C_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, append2A_in_aaag(X68, T47, X69, T46))
append2A_in_aaag([], T68, T69, .(T68, T69)) → append2A_out_aaag([], T68, T69, .(T68, T69))
append2A_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, append2A_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, append2A_out_aaag(X107, T79, X108, T78)) → append2A_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, append2A_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, append2A_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, X27))
append1D_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, append1B_in_gga(T94, T95, X134))
append1B_in_gga([], T102, T102) → append1B_out_gga([], T102, T102)
append1B_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, append1B_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, append1B_out_gga(T110, T111, X156)) → append1B_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, append1B_out_gga(T94, T95, X134)) → append1D_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
append2A_in_aaag(x1, x2, x3, x4)  =  append2A_in_aaag(x4)
append2A_out_aaag(x1, x2, x3, x4)  =  append2A_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
append1D_in_ggga(x1, x2, x3, x4)  =  append1D_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
append1B_in_gga(x1, x2, x3)  =  append1B_in_gga(x1, x2)
append1B_out_gga(x1, x2, x3)  =  append1B_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
append1D_out_ggga(x1, x2, x3, x4)  =  append1D_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)

(5) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T27, T28), .(T27, T29)) → U4_GA(T27, T28, T29, append1C_in_ga(T28, X27))
PERME_IN_GA(.(T27, T28), .(T27, T29)) → APPEND1C_IN_GA(T28, X27)
PERME_IN_GA(.(T27, T28), .(T27, T29)) → U5_GA(T27, T28, T29, append1C_in_ga(T28, T31))
U5_GA(T27, T28, T29, append1C_out_ga(T28, T31)) → U6_GA(T27, T28, T29, permE_in_ga(T31, T29))
U5_GA(T27, T28, T29, append1C_out_ga(T28, T31)) → PERME_IN_GA(T31, T29)
PERME_IN_GA(.(T45, T46), .(T47, T48)) → U7_GA(T45, T46, T47, T48, append2A_in_aaag(X68, T47, X69, T46))
PERME_IN_GA(.(T45, T46), .(T47, T48)) → APPEND2A_IN_AAAG(X68, T47, X69, T46)
APPEND2A_IN_AAAG(.(T77, X107), T79, X108, .(T77, T78)) → U1_AAAG(T77, X107, T79, X108, T78, append2A_in_aaag(X107, T79, X108, T78))
APPEND2A_IN_AAAG(.(T77, X107), T79, X108, .(T77, T78)) → APPEND2A_IN_AAAG(X107, T79, X108, T78)
PERME_IN_GA(.(T45, T46), .(T47, T55)) → U8_GA(T45, T46, T47, T55, append2A_in_aaag(T53, T47, T54, T46))
U8_GA(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U9_GA(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, X27))
U8_GA(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → APPEND1D_IN_GGGA(T45, T53, T54, X27)
APPEND1D_IN_GGGA(T93, T94, T95, .(T93, X134)) → U3_GGGA(T93, T94, T95, X134, append1B_in_gga(T94, T95, X134))
APPEND1D_IN_GGGA(T93, T94, T95, .(T93, X134)) → APPEND1B_IN_GGA(T94, T95, X134)
APPEND1B_IN_GGA(.(T109, T110), T111, .(T109, X156)) → U2_GGA(T109, T110, T111, X156, append1B_in_gga(T110, T111, X156))
APPEND1B_IN_GGA(.(T109, T110), T111, .(T109, X156)) → APPEND1B_IN_GGA(T110, T111, X156)
U8_GA(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U10_GA(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, T84))
U10_GA(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → U11_GA(T45, T46, T47, T55, permE_in_ga(T84, T55))
U10_GA(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → PERME_IN_GA(T84, T55)

The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, append1C_in_ga(T28, X27))
append1C_in_ga(T37, T37) → append1C_out_ga(T37, T37)
U4_ga(T27, T28, T29, append1C_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, append1C_in_ga(T28, T31))
U5_ga(T27, T28, T29, append1C_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, append2A_in_aaag(X68, T47, X69, T46))
append2A_in_aaag([], T68, T69, .(T68, T69)) → append2A_out_aaag([], T68, T69, .(T68, T69))
append2A_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, append2A_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, append2A_out_aaag(X107, T79, X108, T78)) → append2A_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, append2A_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, append2A_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, X27))
append1D_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, append1B_in_gga(T94, T95, X134))
append1B_in_gga([], T102, T102) → append1B_out_gga([], T102, T102)
append1B_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, append1B_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, append1B_out_gga(T110, T111, X156)) → append1B_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, append1B_out_gga(T94, T95, X134)) → append1D_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
append2A_in_aaag(x1, x2, x3, x4)  =  append2A_in_aaag(x4)
append2A_out_aaag(x1, x2, x3, x4)  =  append2A_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
append1D_in_ggga(x1, x2, x3, x4)  =  append1D_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
append1B_in_gga(x1, x2, x3)  =  append1B_in_gga(x1, x2)
append1B_out_gga(x1, x2, x3)  =  append1B_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
append1D_out_ggga(x1, x2, x3, x4)  =  append1D_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)
PERME_IN_GA(x1, x2)  =  PERME_IN_GA(x1)
U4_GA(x1, x2, x3, x4)  =  U4_GA(x4)
APPEND1C_IN_GA(x1, x2)  =  APPEND1C_IN_GA(x1)
U5_GA(x1, x2, x3, x4)  =  U5_GA(x4)
U6_GA(x1, x2, x3, x4)  =  U6_GA(x4)
U7_GA(x1, x2, x3, x4, x5)  =  U7_GA(x5)
APPEND2A_IN_AAAG(x1, x2, x3, x4)  =  APPEND2A_IN_AAAG(x4)
U1_AAAG(x1, x2, x3, x4, x5, x6)  =  U1_AAAG(x1, x6)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x1, x5)
U9_GA(x1, x2, x3, x4, x5)  =  U9_GA(x5)
APPEND1D_IN_GGGA(x1, x2, x3, x4)  =  APPEND1D_IN_GGGA(x1, x2, x3)
U3_GGGA(x1, x2, x3, x4, x5)  =  U3_GGGA(x1, x5)
APPEND1B_IN_GGA(x1, x2, x3)  =  APPEND1B_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4, x5)  =  U2_GGA(x1, x5)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x5)
U11_GA(x1, x2, x3, x4, x5)  =  U11_GA(x5)

We have to consider all (P,R,Pi)-chains

(6) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T27, T28), .(T27, T29)) → U4_GA(T27, T28, T29, append1C_in_ga(T28, X27))
PERME_IN_GA(.(T27, T28), .(T27, T29)) → APPEND1C_IN_GA(T28, X27)
PERME_IN_GA(.(T27, T28), .(T27, T29)) → U5_GA(T27, T28, T29, append1C_in_ga(T28, T31))
U5_GA(T27, T28, T29, append1C_out_ga(T28, T31)) → U6_GA(T27, T28, T29, permE_in_ga(T31, T29))
U5_GA(T27, T28, T29, append1C_out_ga(T28, T31)) → PERME_IN_GA(T31, T29)
PERME_IN_GA(.(T45, T46), .(T47, T48)) → U7_GA(T45, T46, T47, T48, append2A_in_aaag(X68, T47, X69, T46))
PERME_IN_GA(.(T45, T46), .(T47, T48)) → APPEND2A_IN_AAAG(X68, T47, X69, T46)
APPEND2A_IN_AAAG(.(T77, X107), T79, X108, .(T77, T78)) → U1_AAAG(T77, X107, T79, X108, T78, append2A_in_aaag(X107, T79, X108, T78))
APPEND2A_IN_AAAG(.(T77, X107), T79, X108, .(T77, T78)) → APPEND2A_IN_AAAG(X107, T79, X108, T78)
PERME_IN_GA(.(T45, T46), .(T47, T55)) → U8_GA(T45, T46, T47, T55, append2A_in_aaag(T53, T47, T54, T46))
U8_GA(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U9_GA(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, X27))
U8_GA(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → APPEND1D_IN_GGGA(T45, T53, T54, X27)
APPEND1D_IN_GGGA(T93, T94, T95, .(T93, X134)) → U3_GGGA(T93, T94, T95, X134, append1B_in_gga(T94, T95, X134))
APPEND1D_IN_GGGA(T93, T94, T95, .(T93, X134)) → APPEND1B_IN_GGA(T94, T95, X134)
APPEND1B_IN_GGA(.(T109, T110), T111, .(T109, X156)) → U2_GGA(T109, T110, T111, X156, append1B_in_gga(T110, T111, X156))
APPEND1B_IN_GGA(.(T109, T110), T111, .(T109, X156)) → APPEND1B_IN_GGA(T110, T111, X156)
U8_GA(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U10_GA(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, T84))
U10_GA(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → U11_GA(T45, T46, T47, T55, permE_in_ga(T84, T55))
U10_GA(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → PERME_IN_GA(T84, T55)

The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, append1C_in_ga(T28, X27))
append1C_in_ga(T37, T37) → append1C_out_ga(T37, T37)
U4_ga(T27, T28, T29, append1C_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, append1C_in_ga(T28, T31))
U5_ga(T27, T28, T29, append1C_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, append2A_in_aaag(X68, T47, X69, T46))
append2A_in_aaag([], T68, T69, .(T68, T69)) → append2A_out_aaag([], T68, T69, .(T68, T69))
append2A_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, append2A_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, append2A_out_aaag(X107, T79, X108, T78)) → append2A_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, append2A_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, append2A_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, X27))
append1D_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, append1B_in_gga(T94, T95, X134))
append1B_in_gga([], T102, T102) → append1B_out_gga([], T102, T102)
append1B_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, append1B_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, append1B_out_gga(T110, T111, X156)) → append1B_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, append1B_out_gga(T94, T95, X134)) → append1D_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
append2A_in_aaag(x1, x2, x3, x4)  =  append2A_in_aaag(x4)
append2A_out_aaag(x1, x2, x3, x4)  =  append2A_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
append1D_in_ggga(x1, x2, x3, x4)  =  append1D_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
append1B_in_gga(x1, x2, x3)  =  append1B_in_gga(x1, x2)
append1B_out_gga(x1, x2, x3)  =  append1B_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
append1D_out_ggga(x1, x2, x3, x4)  =  append1D_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)
PERME_IN_GA(x1, x2)  =  PERME_IN_GA(x1)
U4_GA(x1, x2, x3, x4)  =  U4_GA(x4)
APPEND1C_IN_GA(x1, x2)  =  APPEND1C_IN_GA(x1)
U5_GA(x1, x2, x3, x4)  =  U5_GA(x4)
U6_GA(x1, x2, x3, x4)  =  U6_GA(x4)
U7_GA(x1, x2, x3, x4, x5)  =  U7_GA(x5)
APPEND2A_IN_AAAG(x1, x2, x3, x4)  =  APPEND2A_IN_AAAG(x4)
U1_AAAG(x1, x2, x3, x4, x5, x6)  =  U1_AAAG(x1, x6)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x1, x5)
U9_GA(x1, x2, x3, x4, x5)  =  U9_GA(x5)
APPEND1D_IN_GGGA(x1, x2, x3, x4)  =  APPEND1D_IN_GGGA(x1, x2, x3)
U3_GGGA(x1, x2, x3, x4, x5)  =  U3_GGGA(x1, x5)
APPEND1B_IN_GGA(x1, x2, x3)  =  APPEND1B_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4, x5)  =  U2_GGA(x1, x5)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x5)
U11_GA(x1, x2, x3, x4, x5)  =  U11_GA(x5)

We have to consider all (P,R,Pi)-chains

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 12 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPEND1B_IN_GGA(.(T109, T110), T111, .(T109, X156)) → APPEND1B_IN_GGA(T110, T111, X156)

The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, append1C_in_ga(T28, X27))
append1C_in_ga(T37, T37) → append1C_out_ga(T37, T37)
U4_ga(T27, T28, T29, append1C_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, append1C_in_ga(T28, T31))
U5_ga(T27, T28, T29, append1C_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, append2A_in_aaag(X68, T47, X69, T46))
append2A_in_aaag([], T68, T69, .(T68, T69)) → append2A_out_aaag([], T68, T69, .(T68, T69))
append2A_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, append2A_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, append2A_out_aaag(X107, T79, X108, T78)) → append2A_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, append2A_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, append2A_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, X27))
append1D_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, append1B_in_gga(T94, T95, X134))
append1B_in_gga([], T102, T102) → append1B_out_gga([], T102, T102)
append1B_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, append1B_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, append1B_out_gga(T110, T111, X156)) → append1B_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, append1B_out_gga(T94, T95, X134)) → append1D_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
append2A_in_aaag(x1, x2, x3, x4)  =  append2A_in_aaag(x4)
append2A_out_aaag(x1, x2, x3, x4)  =  append2A_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
append1D_in_ggga(x1, x2, x3, x4)  =  append1D_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
append1B_in_gga(x1, x2, x3)  =  append1B_in_gga(x1, x2)
append1B_out_gga(x1, x2, x3)  =  append1B_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
append1D_out_ggga(x1, x2, x3, x4)  =  append1D_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)
APPEND1B_IN_GGA(x1, x2, x3)  =  APPEND1B_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(10) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(11) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPEND1B_IN_GGA(.(T109, T110), T111, .(T109, X156)) → APPEND1B_IN_GGA(T110, T111, X156)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
APPEND1B_IN_GGA(x1, x2, x3)  =  APPEND1B_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(12) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(13) Obligation:

Q DP problem:
The TRS P consists of the following rules:

APPEND1B_IN_GGA(.(T109, T110), T111) → APPEND1B_IN_GGA(T110, T111)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(14) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • APPEND1B_IN_GGA(.(T109, T110), T111) → APPEND1B_IN_GGA(T110, T111)
    The graph contains the following edges 1 > 1, 2 >= 2

(15) YES

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPEND2A_IN_AAAG(.(T77, X107), T79, X108, .(T77, T78)) → APPEND2A_IN_AAAG(X107, T79, X108, T78)

The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, append1C_in_ga(T28, X27))
append1C_in_ga(T37, T37) → append1C_out_ga(T37, T37)
U4_ga(T27, T28, T29, append1C_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, append1C_in_ga(T28, T31))
U5_ga(T27, T28, T29, append1C_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, append2A_in_aaag(X68, T47, X69, T46))
append2A_in_aaag([], T68, T69, .(T68, T69)) → append2A_out_aaag([], T68, T69, .(T68, T69))
append2A_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, append2A_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, append2A_out_aaag(X107, T79, X108, T78)) → append2A_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, append2A_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, append2A_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, X27))
append1D_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, append1B_in_gga(T94, T95, X134))
append1B_in_gga([], T102, T102) → append1B_out_gga([], T102, T102)
append1B_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, append1B_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, append1B_out_gga(T110, T111, X156)) → append1B_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, append1B_out_gga(T94, T95, X134)) → append1D_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
append2A_in_aaag(x1, x2, x3, x4)  =  append2A_in_aaag(x4)
append2A_out_aaag(x1, x2, x3, x4)  =  append2A_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
append1D_in_ggga(x1, x2, x3, x4)  =  append1D_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
append1B_in_gga(x1, x2, x3)  =  append1B_in_gga(x1, x2)
append1B_out_gga(x1, x2, x3)  =  append1B_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
append1D_out_ggga(x1, x2, x3, x4)  =  append1D_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)
APPEND2A_IN_AAAG(x1, x2, x3, x4)  =  APPEND2A_IN_AAAG(x4)

We have to consider all (P,R,Pi)-chains

(17) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(18) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPEND2A_IN_AAAG(.(T77, X107), T79, X108, .(T77, T78)) → APPEND2A_IN_AAAG(X107, T79, X108, T78)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
APPEND2A_IN_AAAG(x1, x2, x3, x4)  =  APPEND2A_IN_AAAG(x4)

We have to consider all (P,R,Pi)-chains

(19) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

APPEND2A_IN_AAAG(.(T77, T78)) → APPEND2A_IN_AAAG(T78)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(21) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • APPEND2A_IN_AAAG(.(T77, T78)) → APPEND2A_IN_AAAG(T78)
    The graph contains the following edges 1 > 1

(22) YES

(23) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T27, T28), .(T27, T29)) → U5_GA(T27, T28, T29, append1C_in_ga(T28, T31))
U5_GA(T27, T28, T29, append1C_out_ga(T28, T31)) → PERME_IN_GA(T31, T29)
PERME_IN_GA(.(T45, T46), .(T47, T55)) → U8_GA(T45, T46, T47, T55, append2A_in_aaag(T53, T47, T54, T46))
U8_GA(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U10_GA(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, T84))
U10_GA(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → PERME_IN_GA(T84, T55)

The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, append1C_in_ga(T28, X27))
append1C_in_ga(T37, T37) → append1C_out_ga(T37, T37)
U4_ga(T27, T28, T29, append1C_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, append1C_in_ga(T28, T31))
U5_ga(T27, T28, T29, append1C_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, append2A_in_aaag(X68, T47, X69, T46))
append2A_in_aaag([], T68, T69, .(T68, T69)) → append2A_out_aaag([], T68, T69, .(T68, T69))
append2A_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, append2A_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, append2A_out_aaag(X107, T79, X108, T78)) → append2A_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, append2A_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, append2A_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, X27))
append1D_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, append1B_in_gga(T94, T95, X134))
append1B_in_gga([], T102, T102) → append1B_out_gga([], T102, T102)
append1B_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, append1B_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, append1B_out_gga(T110, T111, X156)) → append1B_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, append1B_out_gga(T94, T95, X134)) → append1D_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
append2A_in_aaag(x1, x2, x3, x4)  =  append2A_in_aaag(x4)
append2A_out_aaag(x1, x2, x3, x4)  =  append2A_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
append1D_in_ggga(x1, x2, x3, x4)  =  append1D_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
append1B_in_gga(x1, x2, x3)  =  append1B_in_gga(x1, x2)
append1B_out_gga(x1, x2, x3)  =  append1B_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
append1D_out_ggga(x1, x2, x3, x4)  =  append1D_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)
PERME_IN_GA(x1, x2)  =  PERME_IN_GA(x1)
U5_GA(x1, x2, x3, x4)  =  U5_GA(x4)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x1, x5)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x5)

We have to consider all (P,R,Pi)-chains

(24) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(25) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T27, T28), .(T27, T29)) → U5_GA(T27, T28, T29, append1C_in_ga(T28, T31))
U5_GA(T27, T28, T29, append1C_out_ga(T28, T31)) → PERME_IN_GA(T31, T29)
PERME_IN_GA(.(T45, T46), .(T47, T55)) → U8_GA(T45, T46, T47, T55, append2A_in_aaag(T53, T47, T54, T46))
U8_GA(T45, T46, T47, T55, append2A_out_aaag(T53, T47, T54, T46)) → U10_GA(T45, T46, T47, T55, append1D_in_ggga(T45, T53, T54, T84))
U10_GA(T45, T46, T47, T55, append1D_out_ggga(T45, T53, T54, T84)) → PERME_IN_GA(T84, T55)

The TRS R consists of the following rules:

append1C_in_ga(T37, T37) → append1C_out_ga(T37, T37)
append2A_in_aaag([], T68, T69, .(T68, T69)) → append2A_out_aaag([], T68, T69, .(T68, T69))
append2A_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, append2A_in_aaag(X107, T79, X108, T78))
append1D_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, append1B_in_gga(T94, T95, X134))
U1_aaag(T77, X107, T79, X108, T78, append2A_out_aaag(X107, T79, X108, T78)) → append2A_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U3_ggga(T93, T94, T95, X134, append1B_out_gga(T94, T95, X134)) → append1D_out_ggga(T93, T94, T95, .(T93, X134))
append1B_in_gga([], T102, T102) → append1B_out_gga([], T102, T102)
append1B_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, append1B_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, append1B_out_gga(T110, T111, X156)) → append1B_out_gga(.(T109, T110), T111, .(T109, X156))

The argument filtering Pi contains the following mapping:
[]  =  []
.(x1, x2)  =  .(x1, x2)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x2)
append2A_in_aaag(x1, x2, x3, x4)  =  append2A_in_aaag(x4)
append2A_out_aaag(x1, x2, x3, x4)  =  append2A_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
append1D_in_ggga(x1, x2, x3, x4)  =  append1D_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
append1B_in_gga(x1, x2, x3)  =  append1B_in_gga(x1, x2)
append1B_out_gga(x1, x2, x3)  =  append1B_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
append1D_out_ggga(x1, x2, x3, x4)  =  append1D_out_ggga(x4)
PERME_IN_GA(x1, x2)  =  PERME_IN_GA(x1)
U5_GA(x1, x2, x3, x4)  =  U5_GA(x4)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x1, x5)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x5)

We have to consider all (P,R,Pi)-chains

(26) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(27) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T27, T28)) → U5_GA(append1C_in_ga(T28))
U5_GA(append1C_out_ga(T31)) → PERME_IN_GA(T31)
PERME_IN_GA(.(T45, T46)) → U8_GA(T45, append2A_in_aaag(T46))
U8_GA(T45, append2A_out_aaag(T53, T47, T54)) → U10_GA(append1D_in_ggga(T45, T53, T54))
U10_GA(append1D_out_ggga(T84)) → PERME_IN_GA(T84)

The TRS R consists of the following rules:

append1C_in_ga(T37) → append1C_out_ga(T37)
append2A_in_aaag(.(T68, T69)) → append2A_out_aaag([], T68, T69)
append2A_in_aaag(.(T77, T78)) → U1_aaag(T77, append2A_in_aaag(T78))
append1D_in_ggga(T93, T94, T95) → U3_ggga(T93, append1B_in_gga(T94, T95))
U1_aaag(T77, append2A_out_aaag(X107, T79, X108)) → append2A_out_aaag(.(T77, X107), T79, X108)
U3_ggga(T93, append1B_out_gga(X134)) → append1D_out_ggga(.(T93, X134))
append1B_in_gga([], T102) → append1B_out_gga(T102)
append1B_in_gga(.(T109, T110), T111) → U2_gga(T109, append1B_in_gga(T110, T111))
U2_gga(T109, append1B_out_gga(X156)) → append1B_out_gga(.(T109, X156))

The set Q consists of the following terms:

append1C_in_ga(x0)
append2A_in_aaag(x0)
append1D_in_ggga(x0, x1, x2)
U1_aaag(x0, x1)
U3_ggga(x0, x1)
append1B_in_gga(x0, x1)
U2_gga(x0, x1)

We have to consider all (P,Q,R)-chains.

(28) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

PERME_IN_GA(.(T27, T28)) → U5_GA(append1C_in_ga(T28))
U5_GA(append1C_out_ga(T31)) → PERME_IN_GA(T31)
PERME_IN_GA(.(T45, T46)) → U8_GA(T45, append2A_in_aaag(T46))
U8_GA(T45, append2A_out_aaag(T53, T47, T54)) → U10_GA(append1D_in_ggga(T45, T53, T54))
U10_GA(append1D_out_ggga(T84)) → PERME_IN_GA(T84)

Strictly oriented rules of the TRS R:

append1C_in_ga(T37) → append1C_out_ga(T37)
append2A_in_aaag(.(T68, T69)) → append2A_out_aaag([], T68, T69)
append2A_in_aaag(.(T77, T78)) → U1_aaag(T77, append2A_in_aaag(T78))
append1D_in_ggga(T93, T94, T95) → U3_ggga(T93, append1B_in_gga(T94, T95))
U1_aaag(T77, append2A_out_aaag(X107, T79, X108)) → append2A_out_aaag(.(T77, X107), T79, X108)
U3_ggga(T93, append1B_out_gga(X134)) → append1D_out_ggga(.(T93, X134))
append1B_in_gga([], T102) → append1B_out_gga(T102)
append1B_in_gga(.(T109, T110), T111) → U2_gga(T109, append1B_in_gga(T110, T111))
U2_gga(T109, append1B_out_gga(X156)) → append1B_out_gga(.(T109, X156))

Used ordering: Knuth-Bendix order [KBO] with precedence:
U10GA1 > append1Dinggga3 > append2Ainaaag1 > append1Coutga1 > .2 > U5GA1 > PERMEINGA1 > U1aaag2 > U8GA2 > append1Bingga2 > U2gga2 > U3ggga2 > append1Doutggga1 > append1Boutgga1 > [] > append2Aoutaaag3 > append1Cinga1

and weight map:

[]=4
append1C_in_ga_1=3
append1C_out_ga_1=2
append2A_in_aaag_1=3
append1B_out_gga_1=4
append1D_out_ggga_1=3
PERME_IN_GA_1=3
U5_GA_1=1
U10_GA_1=1
._2=1
append2A_out_aaag_3=0
U1_aaag_2=1
append1D_in_ggga_3=0
U3_ggga_2=0
append1B_in_gga_2=0
U2_gga_2=1
U8_GA_2=1

The variable weight is 1

(29) Obligation:

Q DP problem:
P is empty.
R is empty.
The set Q consists of the following terms:

append1C_in_ga(x0)
append2A_in_aaag(x0)
append1D_in_ggga(x0, x1, x2)
U1_aaag(x0, x1)
U3_ggga(x0, x1)
append1B_in_gga(x0, x1)
U2_gga(x0, x1)

We have to consider all (P,Q,R)-chains.

(30) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(31) YES